package com.example.designpatterns.factory.abstractFactory;


/**
 * 1) 抽象工厂模式：定义了一个interface用于创建相关或有
 * 依赖关系的对象簇，而无需指明具体的类
 * 2) 抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。
 * 3) 从设计层面看，抽象工厂模式就是对简单工厂模式
 * 的改进(或者称为进一步的抽象)。
 * 4) 将工厂抽象成两层，AbsFactory(抽象工厂) 和具体实现的工
 * 厂子类。程序员可以根据创建对象类型使用对应的工厂子类。
 * 这样将单个的简单工厂类变成了工厂簇，更利于代码的维护和扩展。
 */
public abstract class Pizza {

    protected String name; //pizza 的名字

    ////准备原材料, 不同的披萨不一样，因此，我们做成抽象方法
    public abstract void prepare();

    public void bake(){
        System.out.println(name + " baking;");
    }

    public void cut() {
        System.out.println(name + " cutting;");
    }

    //打包
    public void box() {
        System.out.println(name + " boxing;");
    }

    public void setName(String name) {
        this.name = name;
    }


}
